package controller;

import java.io.File;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.xwork.RandomStringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import pojo.UploadedImageFile;

/**
 * @description 上传控制器
 * @author Leon Plious
 * @date 2020年7月10日
 */
@Controller
public class UploadController {

	@RequestMapping("/uploadImage")
	public ModelAndView upload(HttpServletRequest request, UploadedImageFile file) throws Exception{
		// 获取一个随机文件名。 因为用户可能上传相同文件名的文件，为了不覆盖原来的文件，通过随机文件名的办法来规避
		String name = RandomStringUtils.randomAlphanumeric(10);
		String oriName = file.getImage().getOriginalFilename();
//		String fileSuffix = oriName.substring(oriName.lastIndexOf("."));
		String newFileName = name + oriName;
		
		String path = "E:\\project\\springmvc\\WebContent\\images";
		// 获取到/WEB-INF/upload/目录，用于存放上传后的文件。
		File newFile = new File(path, newFileName);
		
		if(!newFile.exists())
			newFile.getParentFile().mkdirs();
		// 复制文件
		file.getImage().transferTo(newFile);
		
		// 把生成的随机文件名提交给视图，用于后续的显示
		ModelAndView modelAndView = new ModelAndView("showUploadFile");
		modelAndView.addObject("imageName", newFileName);
		return modelAndView;
	}
}
